package 所有的题类.单调队列;


import java.util.Arrays;

/**
 * 给你一个整数数组 nums 和一个整数 k ，找出 nums 中和至少为 k 的 最短非空子数组 ，
 * 并返回该子数组的长度。如果不存在这样的 子数组 ，返回 -1 。
 *
 * 子数组 是数组中 连续 的一部分。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode.cn/problems/shortest-subarray-with-sum-at-least-k
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class TheMonotonePriorityQueue1 {

    public static void main(String[] args) {
        int a[]={2,-1,2};

        System.out.println(shortestSubarray(a,3));
    }

    public static int shortestSubarray(int[] nums, int k) {
        int left = 0,right=1,len=Integer.MAX_VALUE,sum=nums[0];
        while (left<=right && right<nums.length){
            if((sum+=nums[right])<k) {
                right++;
            }else{
                len=Integer.min(len,(right-left+1));
                sum-=nums[left];
                left++;
            }
        }
        return len;
    }
}
class Solution {
    public int shortestSubarray(int[] nums, int k) {

        return -1;
    }
}